diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 4849b44..f0ccd33 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -1094,8 +1094,21 @@ static const struct regulator_desc s2mpu02_regulators[] = {
 static int s2mps11_pmic_ethonoff(struct platform_device *pdev, bool onoff)
 {
 	struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent);
+	unsigned int reg_val = 0;
 	int ret = 0;
 
+	ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_L15CTRL, &reg_val);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to read S2MPS11_REG_L15CTRL value\n");
+		return ret;
+	}
+
+	ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_L17CTRL, &reg_val);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to read S2MPS11_REG_L17CTRL value\n");
+		return ret;
+	}
+
 	if (onoff) {
 		/* ETH VDD0 ON */
 		ret = regmap_update_bits(iodev->regmap_pmic, S2MPS11_REG_L15CTRL, 0xFF, 0x72);
@@ -1221,24 +1234,14 @@ static int s2mps11_wdt_enable(struct sec_pmic_dev *iodev)
 /* USB3.0 Hub Power OFF(GL3512) : BUCK9 */
 static void s2mps11_buck9_reset(struct sec_pmic_dev *iodev)
 {
-	int		ret;
-	unsigned int	reg_val;
-
-	ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_B9CTRL1, &reg_val);
-
-	if (ret < 0) {
-		pr_err("%s : could not read S2MPS11_REG_B9CTRL1 value\n", __func__);
-		return;
-	}
-
-	mdelay (10);
-	if (regmap_update_bits(iodev->regmap_pmic,
+	if(regmap_update_bits(iodev->regmap_pmic,
 		S2MPS11_REG_B9CTRL1, 0xC0, 0))
 		pr_err("%s : S2MPS11_REG_B9CTRL1 Error!!\n", __func__);
 
-	mdelay (10);
+	mdelay(10);
+
 	if (regmap_update_bits(iodev->regmap_pmic,
-		S2MPS11_REG_B9CTRL1, 0xFF, reg_val))
+		S2MPS11_REG_B9CTRL1, 0xC0, 0xC0))
 		pr_err("%s : S2MPS11_REG_B9CTRL1 Error!!\n", __func__);
 }
 
